iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
自我挑戰組

PowerShell 30天練功做網管平台系列 第 3

03_環境不搞好,code就寫不了

  • 分享至 

  • xImage
  •  

昨天,挨踢狗說了,今天一定會進入寫代碼的階段。

今天真的用PowerShell 6做到了Listing Desktop Settings

看不懂Listing Desktop Settings也沒關係,code有跑出來就是爽


一本好的教科書

使用PowerShell有一個好處,就是在微軟公司網站上,就可以找到不少學習資源。我找到的是這個PowerShell Documentation的網站。
https://ithelp.ithome.com.tw/upload/images/20181018/201117550LHXICnP8v.jpg

挨踢狗打開這書,一眼看到的是 Tutorialas: A cookbook for common scripting tasks 這個模塊,點入後,標題寫著:Sample scripts for system administration
https://ithelp.ithome.com.tw/upload/images/20181018/20111755WrcPvOVSf6.jpg
挨踢狗決定要先給自己一點甜頭,來試試傳說中只要複製貼上,就可以做很多事的PowerShell,倒底是怎麼回事。想這麼做,首先要找到PowerShell。

打開PowerShell視窗

在我的Windows 7中、附屬應用程式中找到PowerShell,裡面有兩種Windows PowerShell

  1. 執行以物件為基礎的(命令列)函式→打開後得到一個叫Windows PowerShell的指令型視窗,很像 Windows 的 cmd 小黑框,但是在每一行最前面會寫著 PS C:\Users\username>
  2. Windows PowerShell整合式指令碼環境,執行以物件為基礎的(命令列)函式→打開後得到一個叫Windows PowerShell ISE的視窗型視窗;特色是有上下兩個窗格,作用現在還不太清楚。
    https://ithelp.ithome.com.tw/upload/images/20181018/20111755jyeTn9Umyf.jpg

來段Copy-Paste的甜頭吧

回到Sample scripts,我挑了Collecting Information About Computers項目。網頁上展示出了好多用法,看起來是有一個叫Get-CimInstance的指令可以用來做這件事。例如第一個小節展示了Listing Desktop Settings。雖然我還不太清楚桌面設定倒底在看什麼,但看到範例代碼的框上有一個Copy,就先按了。
https://ithelp.ithome.com.tw/upload/images/20181018/201117559QHRAgdDV0.jpg

回到前一步開啟的2個視窗,把指令給貼上去。分別按下Enter和執行,登登!出現錯誤訊息了!
https://ithelp.ithome.com.tw/upload/images/20181018/20111755RBPgkgVGlS.jpg
錯誤訊息:無法辨識 'Get-CimInstance' 詞彙是否為 Cmdlet、函數、指令檔或可執行程式的名稱。
挨踢狗左思古想,該不會是我的Windows 7裝的根本不是PowerShell 6吧~

只好想辦法查詢PowerShell的版本

再次奉上「查詢PowerShell 版本」祭拜估狗大神,得到兩個答案,分別是使用get-host$PSVersionTable.PSVersion,再分別把他們餵到剛才的2個視窗。登登!原來我用的是PowerShell 2啊~
https://ithelp.ithome.com.tw/upload/images/20181018/20111755ZkJC9rvEoA.jpg

安裝PowerShell 6

我們再次回到最好的教科書,找到安裝篇。按照上面的指示,先到一個叫GitHub的網站上去下載安裝的msi檔。
在頁面上,我發現了他有2個釋出版本:

  1. v6.2.0-preview.1 Release of PowerShell Core
  2. v6.1.0 Release of PowerShell Core

因為我的筆電CPU是Intel的、用的OS是Windows 7 64位元的,因此就選PowerShell-6.1.0-win-x64.msi。按照說明,下載完後雙擊檔案安裝。然後接著就發現了,還得先安裝Windows Management Framework (WMF) 4.0 or newer。沒關係。我們繼續下載,繼續安裝。我整理一下過程結論是這樣:

  1. 下載 .NET Framework 4.5.2 (可以更新) 和 WMF 5.1版 (Win7AndW2K8R2-KB3191566-x64.ZIP) (https://docs.microsoft.com/zh-tw/powershell/wmf/5.1/install-configure)
  2. 安裝完 .NET Framework 和 WMF 5.1,就可以回頭把PowerShell-6.1.0-win-x64.msi安裝起來。這一次很順利,裝完問我要不要Launch PowerShell,我選了要,就出現了PowerShell 6了。

終於可以來段Copy-Paste的甜頭了吧

想起了剛剛的錯誤訊息:無法辨識 Get-CimInstance 詞彙是否為 Cmdlet、函數、指令檔或可執行程式的名稱;這次我先在PS視窗裡輸入 Get-CimInstance ,發現PS6果然認識了Get-CimInstance;接下來再次複製之前的Sample Scripts,但是因為我只先查詢自己的電腦,所以可以省略ComputerName參數。按下Enter後,登登!終於得到結果了!
Get-CimInstance -ClassName Win32_Desktop
https://ithelp.ithome.com.tw/upload/images/20181018/20111755p7VOmy5u3Y.jpg


上一篇
02_重新整理需求
下一篇
04_用PowerShell來查詢自己電腦上的軟硬體資訊吧
系列文
PowerShell 30天練功做網管平台14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言